이 블로그 검색

2014년 12월 24일 수요일

KDE ark로 한글이름 압축파일을 열 수 없는 것을 수정하자.



여러 정보들을 찾다보면 예전에는 그저 konqueror 의 인코딩정보수정으로

간단히 가능했던 것으로 보인다.

하지만 지금은 잘은 안된다.

KDE3~ 4로 넘어오면서 부터 여러 정책적인 부분에서의 변경에 의한 부분인가 보다.

여러가지 방법이 있다. 일단 인터넷에 돌아다니는 zlib에 대한 패치를 통해서도 할 수 있지만

나는 내가 직접 수정하ᅟ는 방식을 해보길 원해서 그건 갑자기 할 수 있는 수준이 아니라 접었다.

소스를 본적이 있는데 원래 코드가 더러워서 수정 코드도 읽기 편하지 않았다. 그리고 어려웠...


iconv로 인코딩 정보 바꾸는거 정도다 기본적으로는 알고리즘도 다 알겠지만...

zlib소스 읽어본 사람ᅟ만 알겠지만... 어디다 넣어야 할 지  감이 안 온다.


그래서 ark의 소스를 받아보았다. 그런데 말이지 ark라는 프로그램이

굉장히 cli수준에서의 linux의 철학을 잘 반영한다.

먼 말이냐면 만들어진거 있으면 그냥 그것을 쓰지 새로 만들지 않는다랄까...

그냥 zipinfo로 파일정보 얻고 unzip으로 푸는 것을 gui를 잘 씌어 놓았다는 것이다.

 먼말인지 모르겠으면 그냥 한번소스를 보라 나 같은 허접한 사람이 보면 감탄한다.

의외로 굉장히 간단해서..... 간단한 것이 막강할 줄이야...


일단 내가 수정한 부분은 요 파일이다
vim plugins/clizipplugin/cliplugin.cpp 로 열고.

80         p[ListArgs] = QStringList() << QLatin1String("-O")  << QLatin1String("euc-kr") << QLatin1Str    ing( "-l" ) << QLatin1String( "-T" ) << QLatin1String( "$Archive" );
 81         p[ExtractArgs] = QStringList() <<  QLatin1String("-O")  << QLatin1String("euc-kr")  << QLati    n1String( "$PreservePathSwitch" ) << QLatin1String( "$PasswordSwitch" ) << QLatin1String( "$Archive"     ) << QLatin1String( "$Files" );

빨간색 글씨로 되어있는 부분만 수정했다. 그리고 마지막으로 빌드를 했는데

까먹으면 안되는게  cmake ; make ; sudo make install 을 하면

/usr/local/ 에다가 설치를 하는데 ark상에 문제인지 kde상에 문제인지 저쪽으로 들어가면

인식을 못한다. 그리고 ark가 설치되어있으면 우선순위도 밀려서 적용이 안된다.

고로 cmake -DCMAKE_INSTALL_PREFIX=/usr/ ; make ; sudo make install 을 하시면

되겠다. 그러면 온 갖 압축파일로 부터 해방이된다.


일단 내가 우분투라 zip에 -O 옵션이 있는 것이다.이 옵션이 없는 리눅스 배포판의 zip이라면

그냥zlib을 패치해서 쓰던지 zip자체에 패치되어 있는 녀석을 쓰던지 하면된다...

결국 ark는 unzip으로 푸는거니까...

가장 많이 본 글