GithubHelp home page GithubHelp logo

digabi / digabi-os Goto Github PK

View Code? Open in Web Editor NEW
63.0 63.0 10.0 4.58 MB

Abitti Disk Image is a collection of Linux distributions maintained by the Finnish Matriculation Examination Board.

Makefile 24.74% Shell 73.13% SystemVerilog 0.17% Dockerfile 1.15% CSS 0.81%

digabi-os's People

Contributors

agartman avatar akskos avatar aleksiahtiainen avatar auramo avatar chacal avatar elysion avatar exlindro avatar hsalokor avatar jjv avatar juhaerk avatar lateks avatar mikaukora avatar mikko-kujapelto avatar mplattu avatar mtreinik avatar polytypic avatar ruumis avatar samisaves avatar sauihdik avatar sluukkonen avatar sulanto avatar timotm avatar turtleb01 avatar visadb avatar ypcs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

digabi-os's Issues

Update build instructions

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

Create daemon, that monitors status of required packages

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.

Building under Ubuntu: "Unable to locate package linux-image-ytl"

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.

Remove crons

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 custom packages as submodules

Add our custom packages (w/ own repositories) as Git submodules.

  • digabi-feedback
  • digabi-buildbox ?
  • digabi-buildbox-app ?
  • digabi-live-extras ?

Booting on Oracle VirtualBox 4.2.16 (Windows) fails

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.

EFI support

Should have support for EFI booting (for systems which have no BIOS/BIOS-emulation).

User should get warning about packages w/ problems.

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.

SecureBoot support

System should have SecureBoot enabled bootloader, ie. bootloader signed with Microsoft signing key.

Convert binary/changelog.txt to Windows-style line breaks (\r\n).

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.

Easier configuration for local mirror usage

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).

Collect metadata about build

We should collect little more metadata about build.

  • version: /var/lib/digabi/version (this will replace /etc/digabi-version)
  • build host: /var/lib/digabi/builder (architecture, uuid (generate on first build, save as /var/lib/digabi/builder on the build host), timestamp, other?)
  • changelog is already saved in binary, /changelog.txt (see #39)

Should we allow building "dirty" images (ie. w/ uncommitted changes), and just adding .dirty to version number?

Lisättävä helppo tapa asettaa proxy

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.

Configure XFCE desktop

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

Add support for MS Type Cover 3

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 },

Configure firewall

Configure firewall for first public demo + Hackabi hacking contest:

  • allow DHCP
  • allow HTTPS to digabi.fi and sensori.digabi.fi
  • maybe: allow HTTPS to e-lomake.fi

Customize XFCE background

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

Configure timezone

Currently the configured timezone in DOS is UTC. Our users are (always) in Finland, so we should use Europe/Helsinki as defalt timezone.

Upgrade live-build to 4.x

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).

Create buildbox using Vagrantfile

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:

  • install package digabi-buildbox, which should install other dependencies (eg. d-bb-app) & configure the environment (users, sudo etc.)
  • configure port forwards for buildbox
  • include buildbox version inside vagrant, /var/lib/digabi/buildbox
    • when this image was produced, what was the Vagrantbox source image
    • versions of the included digabi-* packages
  • package as VirtualBox .ova

This should be done in Makefile, using make buildbox or similar command.

Buildbox package should include easy tools for upgrading the box.

Sign all released files

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 Makefile command for building custom packages

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

errors on build instructions: GPG key

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"

Retina display support improvement

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

Include feedback client again (digabi-feedback).

  • rebuild package
  • add package to repository
  • add package to config/package-lists/digabi.list

Tell user which packages were installed from other suites

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 kernel with Grsecurity support

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.

Include apt-transport-https to build environment

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": wrong Exec-command

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 to ISO image

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

Enhanced toolchain

Repository management:

  • easier upgrading for packages
  • allow downgrading (interactive mode / -f --force)
  • automatic syncing to server

Add documentation for creating local Debian mirror

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.